home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Games Extra 1996 June
/
Amiga Games Extra 1996 #6.iso
/
userbox
/
publicdomain
/
urouhack
/
source
/
patchfunc.a
< prev
next >
Wrap
Text File
|
1996-03-24
|
2KB
|
130 lines
;=============================================================================
; Assembler section for UrouHack 1.4+
;
; Patches for the following Functions:
;
; OpenScreen()
; OpenScreenTagList()
; OpenWindow()
; OpenWindowTagList()
; CloseScreen()
;=============================================================================
include intuition/screens.i
include intuition/intuition_lib.i
include graphics/graphics_lib.i
include graphics/rastport.i
XDEF _newOSRoutine
XREF _oldOSRoutine
XDEF _newCSRoutine
XREF _oldCSRoutine
XDEF _newOTLRoutine
XREF _oldOTLRoutine
XDEF _newOWRoutine
XREF _oldOWRoutine
XDEF _newOWTLRoutine
XREF _oldOWTLRoutine
XREF _b_left
XREF _b_right
XREF _b_top
XREF _b_bottom
XREF _b_height
XREF _b_width
XREF _w_bottom
XREF _psysi
XREF @allocNewPens
XREF @changeSize
XREF @freeNewPens
_newCSRoutine jsr @freeNewPens
move.l a2,-(sp)
move.l _oldCSRoutine,a2
jsr 0(a2)
move.l (sp)+,a2
rts
_newOSRoutine move.l _oldOSRoutine,d0
bra.s shared
_newOTLRoutine move.l _oldOTLRoutine,d0
shared move.l a2,-(sp)
move.l d0,a2
jsr 0(a2)
move.l d0,a2
move.l d0,-(sp)
jsr @allocNewPens
addq.w #4,sp
tst.w _psysi
beq.s nosysi
move.b _b_bottom,d0
move.b d0,sc_WBorBottom(a2)
move.b _b_right,d0
move.b d0,sc_WBorRight(a2)
move.b _b_top,d0
move.b d0,sc_WBorTop(a2)
move.b _b_left,d0
move.b d0,sc_WBorLeft(a2)
nosysi move.l a2,d0
move.l (sp)+,a2
rts
_newOWRoutine move.l _oldOWRoutine,d0
bra.s shared1
_newOWTLRoutine movem.l d0-d7/a0-a7,-(sp)
jsr @changeSize
movem.l (sp)+,d0-d7/a0-a7
move.l _oldOWTLRoutine,d0
shared1 move.l a2,-(sp)
move.l d0,a2
jsr 0(a2)
move.l d0,a2
move.l wd_Flags(a2),d1
moveq #1,d0
and.l d1,d0
beq.s noAdjust
moveq #$20,d0
and.l d1,d0
beq.s checkRight
tst.b wd_BorderBottom(a2)
beq.s checkRight
move.b _b_height,wd_BorderBottom(a2)
checkRight moveq #$10,d0
and.l d1,d0
beq.s checkRefresh
tst.b wd_BorderRight(a2)
beq.s checkRefresh
move.b _b_width,wd_BorderRight(a2)
checkRefresh moveq #$30,d0
and.l d1,d0
beq.s noAdjust
move.l a2,a0
jsr _LVORefreshWindowFrame(a6)
noAdjust move.l a2,d0
move.l (sp)+,a2
rts
end